package market

import (
	"go.uber.org/fx"

	"github.com/EpiK-Protocol/go-epik/node/impl/full"
)

type MarketAPI struct {
	fx.In

	full.MpoolAPI
	// FMgr *market.FundManager
}

// func (a *MarketAPI) MarketAddBalance(ctx context.Context, wallet, addr address.Address, amt types.BigInt) (cid.Cid, error) {
// 	params, err := actors.SerializeParams(&addr)
// 	if err != nil {
// 		return cid.Undef, err
// 	}

// 	smsg, aerr := a.MpoolPushMessage(ctx, &types.Message{
// 		To:     marketactor.Address,
// 		From:   wallet,
// 		Value:  amt,
// 		Method: marketactor.Methods.AddBalance,
// 		Params: params,
// 	}, nil)

// 	if aerr != nil {
// 		return cid.Undef, aerr
// 	}

// 	return smsg.Cid(), nil
// }

// func (a *MarketAPI) MarketGetReserved(ctx context.Context, addr address.Address) (types.BigInt, error) {
// 	return a.FMgr.GetReserved(addr), nil
// }

// func (a *MarketAPI) MarketReserveFunds(ctx context.Context, wallet address.Address, addr address.Address, amt types.BigInt) (cid.Cid, error) {
// 	return a.FMgr.Reserve(ctx, wallet, addr, amt)
// }

// func (a *MarketAPI) MarketReleaseFunds(ctx context.Context, addr address.Address, amt types.BigInt) error {
// 	return a.FMgr.Release(addr, amt)
// }

// func (a *MarketAPI) MarketWithdraw(ctx context.Context, wallet, addr address.Address, amt types.BigInt) (cid.Cid, error) {
// 	return a.FMgr.Withdraw(ctx, wallet, addr, amt)
// }
